package com.javaapi.designmode;
interface IMyInterface{
	public void callBack();//约定协议
}
// 程序员A写了一段程序（程序a），其中预留有回调函数接口，并封装好了该程序。
//程序员B要让a调用自己的程序b中的一个方法，于是，他通过a中的接口回调自己b中的方法。目的达到。
//在C/C++中，要用回调函数，被掉函数需要告诉调用者自己的指针地址，但在JAVA中没有指针，怎么办？我们可以通过接口（interface）来实现定义回调函数。
//假设我是程序员A，以下是我的程序a：
class CallBackA{
	public IMyInterface myInterface;

	public IMyInterface getMyInterface() {
		return myInterface;
	}

	public void setMyInterface(IMyInterface myInterface) {
		this.myInterface = myInterface;
	}
	
	public void call(){
		myInterface.callBack();
//		this.myInterface.callBack();
	}
}
//  我还需要定义一个接口，以便程序员B根据我的定义编写程序实现接口。
public class CallBackB implements IMyInterface{
	@Override
	public void callBack() {
			System.out.println("回调B");
	}
	 //于是，程序员B只需要实现这个接口就能达到回调的目的了：
	public static void main(String[] args) {
		CallBackA callBackA=new CallBackA();
		callBackA.setMyInterface(new CallBackB());
		callBackA.call();
	}
}

